package string;

public class StringDemo {
    public static void main(String[] args) {
        String str = "123abc"; //直接量
        System.out.println(str);
        String str2 = "123abc"; //复用
        System.out.println(str2);
        String str3 = new String("123abc"); //完全创建一个新对象
        System.out.println(str3);
        String str4 = "123abc";
        System.out.println(str4);
        System.out.println(str3 == str4);// == 比较的是地址
        System.out.println(str == str2);
        System.out.println(str == str3);

        String s = "123";
        String s1 = s+"abc";
        System.out.println(str==s1);//变量的拼接不会复用

        String s2 = "123"+"abc";
        System.out.println(str==s2);//自变量直接值 拼接时会触发复发机制

        String s3 = "123abc";
        String s4 = new String("123abc");
        System.out.println(s3==s4);
        System.out.println(s3.equals(s4));//true equals() 比较的是字面量值 相同代表一样
    }
}
